package com.dao;

import java.util.List;
import java.util.Map;

/**
 * 通用接口 - 提供各种数据库查询和操作功能
 *
 * author: team10
 */
public interface CommonDao {

	/**
	 * 根据参数获取选项列表
	 *
	 * @param params 查询参数
	 * @return 选项列表
	 */
	List<String> getOption(Map<String, Object> params);

	/**
	 * 根据参数获取跟随选项的数据
	 *
	 * @param params 查询参数
	 * @return 跟随选项的数据
	 */
	Map<String, Object> getFollowByOption(Map<String, Object> params);

	/**
	 * 根据参数获取第二类跟随选项的数据
	 *
	 * @param params 查询参数
	 * @return 第二类跟随选项的数据
	 */
	List<String> getFollowByOption2(Map<String, Object> params);

	/**
	 * 执行某些操作，可能是提交数据或者执行数据库更新
	 *
	 * @param params 操作所需的参数
	 */
	void sh(Map<String, Object> params);

	/**
	 * 获取提醒的数量
	 *
	 * @param params 查询参数
	 * @return 提醒数量
	 */
	int remindCount(Map<String, Object> params);

	/**
	 * 根据参数选择日历数据
	 *
	 * @param params 查询参数
	 * @return 日历数据
	 */
	Map<String, Object> selectCal(Map<String, Object> params);

	/**
	 * 根据参数选择分组数据
	 *
	 * @param params 查询参数
	 * @return 分组数据
	 */
	List<Map<String, Object>> selectGroup(Map<String, Object> params);

	/**
	 * 根据参数选择值数据
	 *
	 * @param params 查询参数
	 * @return 值数据
	 */
	List<Map<String, Object>> selectValue(Map<String, Object> params);

	/**
	 * 根据参数选择时间统计值
	 *
	 * @param params 查询参数
	 * @return 时间统计值
	 */
	List<Map<String, Object>> selectTimeStatValue(Map<String, Object> params);
}
